package com.opcode.costatablet.ui.splashscreen;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import com.opcode.costatablet.R;
import com.opcode.nebulamobil.base.activities.StandartActivityBase;
import com.opcode.nebulamobil.base.services.ConnectionService;
import com.opcode.nebulamobil.base.services.NebulaFinderService;
import com.opcode.nebulamobil.base.services.PushTalkService;
import com.opcode.nebulamobil.information.ApplicationInfo;

/**
 * Bu activity mutfakta yer alacak olan tablet uygulamasının açılan ekranını oluşturur.
 * Sunucuya bağlantı kurma ve aktivasyon için gerekli veriler bu aktivite ile gönderilir.
 * @author Okan ERDOĞAN
 *
 * 21 Tem 2014
 */
public class KitchenSplashActivity extends StandartActivityBase{

	//Referanslar
	private Intent service,pushTalkService,nebulaFinderService;	
	
	/**
	 * Yaşam döngüsü içerisinde ilk olarak bu metod çalıştırılır.
	 * Bu metod içerisinde splash aktivitesine ait layout dosyası ayarlanır.
	 * Bu layout dosyası içerisinde lojik işlemleri yapacaığmız fragment nesnesi yer almaktadır.
	 * Böylece bu aktivite ayağa kaldırıldığında kitchen_splash_activity_layout dosyasında belirtilen KitchenSplashFragment fragmentı da ayağa kalkar.
	 */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 

        ApplicationInfo.setTablet(true);
        setContentView(R.layout.kitchen_splash_activity_layout);
    }  
    
    /**
     * Yaşam döngüsünde onCreate'ten sonra çalıştırılan bu metod bağlantı service'inin çalışıp çalışmama durumunu kontrol eder.
     * Bu duruma göre ya service'i ayağa kaldırır.Ya da hali hazırda çalışmakta olan servis ile bağlantıyı kurar.
     */
    public void onStart(){
    	super.onStart();
    	
    	this.service = new Intent(this, ConnectionService.class);
    	this.pushTalkService=new Intent(this,PushTalkService.class);
    	this.nebulaFinderService=new Intent(this,NebulaFinderService.class);

     	
     	if(isMyServiceRunning(ConnectionService.class)){
     		Log.i("KitchenSplashActivity", "ConnectionService arka planda çalışıyor.");
     		stopService(service);
     		startService(service);
     		if(ApplicationInfo.getTryConnectionCommandListener()!=null){
         		ApplicationInfo.getTryConnectionCommandListener().tryConnectionAgain();
     		}

     	}else{
     		startService(service);
     		Log.i("KitchenSplashActivity", "ConnectionService başlatılıyor.");
     	}
     	
     	if(isMyServiceRunning(PushTalkService.class)){
     		Log.i("SplashActivity", "PushTalkService arka planda alışıyor.");
     	}else{
     		startService(pushTalkService);
     		Log.i("SplashActivity", "PushTalkService başlatılıyor.");
     	}
     	
     	
     	if(isMyServiceRunning(NebulaFinderService.class)){
     		Log.i("SplashActivity", "NebulaFinderService arka planda alışıyor.");
     		stopService(nebulaFinderService);
     		startService(nebulaFinderService);
     	}else{
     		startService(nebulaFinderService);
     		Log.i("SplashActivity", "NebulaFinderService başlatılıyor.");
     	}
    }
    
    
    /**
     * Yaşam döngüsünde onStart'tan sonra çalıştırılır. Ayrıca onPause metodu çalıştırılmışsa geri dönüşte ilk olarak bu metod çalışır.
     */
    public void onResume(){
    	super.onResume();
		setDefaultStartActivity(null);
 
    }
 	
 	
    /**
     * Geri butonuna basıldığında bu metod tetiklenir.
     */
    public void onBackPressed(){

    }
    
	
	public void onPause(){
		super.onPause();
		Log.i("KitchenSplashActivity", "onPause");
	}
}
